Computing clusters may provide various advantages over non-clustered computing systems. For example, clusters may provide services with high availability, enable load balancing for large computational workloads, and/or provide more computational power with less powerful constituent nodes.
A cluster may include one or more resources that are shared between nodes within the cluster, such as one or more storage devices. Thus, multiple nodes within the cluster may access the same data. By working in concert, the nodes of a cluster may safely access and alter data for clustered applications. The nodes of a cluster may also work in concert to reconfigure the cluster itself. For example, if some nodes in a cluster become disconnected from the cluster, other nodes in the cluster may attempt to take on the responsibilities of the disconnected nodes.
Unfortunately, under some conditions two parts of a cluster may lose communication with each other yet still have access to shared cluster resources. In this case, each part of the cluster may attempt to take over the responsibilities for the entire cluster without coordinating with the other part of the cluster. This may lead to undesirable results such as corrupted application data.
In order to handle such “split-brain” scenarios, a cluster may be configured to isolate out-of-communication nodes from shared resources using one of several fencing techniques. However, in order to change a cluster from one fencing mode to another, an administrator using traditional cluster technologies may need to first halt cluster operations. Accordingly, the instant disclosure identifies a need for additional and improved methods for changing fencing modes in clusters.